package models

import "time"

// 地址标签常量
const (
	AddressTagHome    = "home"    // 家
	AddressTagCompany = "company" // 公司
	AddressTagSchool  = "school"  // 学校
	AddressTagOther   = "other"   // 其他
)

// 地址状态常量
const (
	AddressStatusNormal   = 1 // 正常
	AddressStatusDisabled = 2 // 禁用
)

// UserAddress 用户收货地址表
type UserAddress struct {
	Id           int64     `json:"id" xorm:"pk autoincr"`
	UserId       int64     `json:"user_id" xorm:"not null comment('用户ID') index"`
	Name         string    `json:"name" xorm:"varchar(50) not null comment('收货人姓名')"`
	Mobile       string    `json:"mobile" xorm:"varchar(20) not null comment('手机号码')"`
	ProvinceCode string    `json:"province_code" xorm:"varchar(20) not null comment('省份编码')"`
	ProvinceName string    `json:"province_name" xorm:"varchar(50) not null comment('省份名称')"`
	CityCode     string    `json:"city_code" xorm:"varchar(20) not null comment('城市编码')"`
	CityName     string    `json:"city_name" xorm:"varchar(50) not null comment('城市名称')"`
	DistrictCode string    `json:"district_code" xorm:"varchar(20) not null comment('区县编码')"`
	DistrictName string    `json:"district_name" xorm:"varchar(50) not null comment('区县名称')"`
	Address      string    `json:"address" xorm:"varchar(255) not null comment('详细地址')"`
	HouseNumber  string    `json:"house_number" xorm:"varchar(50) not null default '' comment('门牌号')"`
	PostCode     string    `json:"post_code" xorm:"varchar(10) not null default '' comment('邮政编码')"`
	Tag          string    `json:"tag" xorm:"varchar(20) not null default 'other' comment('地址标签')"`
	IsDefault    int       `json:"is_default" xorm:"tinyint(1) not null default 0 comment('是否默认地址：0否 1是')"`
	Status       int       `json:"status" xorm:"tinyint(1) not null default 1 comment('状态：1正常 2禁用')"`
	UpdateTime   time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime   time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (UserAddress) TableName() string {
	return "user_address"
}
